package com.ruoyi.system.domain;

import java.math.BigDecimal;

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 房型对象 sys_hotel_room
 * 
 * @author dht
 * @date 2025-04-28
 */
@AllArgsConstructor
@NoArgsConstructor
public class SysHotelRoom extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 房型ID */
    private Long hotelRoomId;

    /** 酒店ID */
    @Excel(name = "酒店ID")
    private Long hotelId;

    /** 数量 */
    @Excel(name = "总数量")
    private Long number;

    /** 数量 */
    @Excel(name = "剩余数量")
    private Long remainNumber;

    /** 类型 */
    @Excel(name = "类型")
    private Integer type;

    /** 面积 */
    @Excel(name = "面积")
    private Long area;

    /** 居住人数 */
    @Excel(name = "居住人数")
    private Long peopleNumber;

    /** 图片 */
    @Excel(name = "图片")
    private String image;

    /** 当前价格 */
    @Excel(name = "当前价格")
    private BigDecimal price;

    public static SysHotelRoom buildDefault(Integer type, Long hotelId) {
        return new SysHotelRoom(hotelId, 0L, 0L, type, 0L, 0L, "", BigDecimal.ZERO);
    }

    public Long getRemainNumber() {
        return remainNumber;
    }

    public void setRemainNumber(Long remainNumber) {
        this.remainNumber = remainNumber;
    }

    public void setHotelRoomId(Long hotelRoomId)
    {
        this.hotelRoomId = hotelRoomId;
    }

    public Long getHotelRoomId() 
    {
        return hotelRoomId;
    }

    public void setHotelId(Long hotelId) 
    {
        this.hotelId = hotelId;
    }

    public Long getHotelId() 
    {
        return hotelId;
    }

    public void setNumber(Long number) 
    {
        this.number = number;
    }

    public Long getNumber() 
    {
        return number;
    }

    public void setType(Integer type)
    {
        this.type = type;
    }

    public Integer getType()
    {
        return type;
    }

    public void setArea(Long area) 
    {
        this.area = area;
    }

    public Long getArea() 
    {
        return area;
    }

    public void setPeopleNumber(Long peopleNumber) 
    {
        this.peopleNumber = peopleNumber;
    }

    public Long getPeopleNumber() 
    {
        return peopleNumber;
    }

    public void setImage(String image) 
    {
        this.image = image;
    }

    public String getImage() 
    {
        return image;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("hotelRoomId", getHotelRoomId())
            .append("hotelId", getHotelId())
            .append("number", getNumber())
            .append("type", getType())
            .append("area", getArea())
            .append("peopleNumber", getPeopleNumber())
            .append("image", getImage())
            .append("price", getPrice())
            .toString();
    }

    public SysHotelRoom(Long hotelId, Long number, Long remainNumber, Integer type, Long area, Long peopleNumber, String image, BigDecimal price) {
        this.hotelId = hotelId;
        this.number = number;
        this.type = type;
        this.area = area;
        this.peopleNumber = peopleNumber;
        this.image = image;
        this.price = price;
        this.remainNumber = remainNumber;
    }
}
